Index: ioemu/vl.c
===================================================================
---- ioemu.orig/vl.c 2006-12-20 15:12:08.000000000 +0000
-+++ ioemu/vl.c 2006-12-20 15:13:00.000000000 +0000
+--- ioemu.orig/vl.c 2006-12-20 15:21:55.000000000 +0000
++++ ioemu/vl.c 2006-12-20 15:21:56.000000000 +0000
@@ -5808,6 +5808,91 @@
return 0;
}
IO_PAGE_START >> PAGE_SHIFT);
Index: ioemu/target-i386-dm/exec-dm.c
===================================================================
---- ioemu.orig/target-i386-dm/exec-dm.c 2006-12-20 15:10:13.000000000 +0000
-+++ ioemu/target-i386-dm/exec-dm.c 2006-12-20 15:12:13.000000000 +0000
+--- ioemu.orig/target-i386-dm/exec-dm.c 2006-12-20 15:21:42.000000000 +0000
++++ ioemu/target-i386-dm/exec-dm.c 2006-12-21 11:32:29.000000000 +0000
@@ -36,6 +36,7 @@
#include "cpu.h"
//#define DEBUG_TB_INVALIDATE
//#define DEBUG_FLUSH
-@@ -127,10 +128,28 @@
+@@ -127,10 +128,29 @@
FILE *logfile;
int loglevel;
+#endif
+
+#ifdef MAPCACHE
++#include <pthread.h>
+static pthread_mutex_t mapcache_mutex;
+#define mapcache_lock() pthread_mutex_lock(&mapcache_mutex)
+#define mapcache_unlock() pthread_mutex_unlock(&mapcache_mutex)
env->next_cpu = NULL;
penv = &first_cpu;
-@@ -144,6 +163,14 @@
+@@ -144,6 +164,14 @@
/* alloc dirty bits array */
phys_ram_dirty = qemu_malloc(phys_ram_size >> TARGET_PAGE_BITS);
}
/* enable or disable low levels log */
-@@ -426,19 +453,27 @@
+@@ -426,19 +454,27 @@
#endif
}
io_index = iomem_index(addr);
if (is_write) {
if (io_index) {
-@@ -460,9 +495,10 @@
+@@ -460,9 +496,10 @@
}
} else if (paddr_is_ram(addr)) {
/* Reading from RAM */
#endif
}
} else {
-@@ -485,7 +521,8 @@
+@@ -485,7 +522,8 @@
}
} else if (paddr_is_ram(addr)) {
/* Reading from RAM */
} else {
/* Neither RAM nor known MMIO space */
memset(buf, 0xff, len);
-@@ -495,6 +532,8 @@
+@@ -495,6 +533,8 @@
buf += l;
addr += l;
}
Index: ioemu/vl.h
===================================================================
---- ioemu.orig/vl.h 2006-12-20 15:12:08.000000000 +0000
-+++ ioemu/vl.h 2006-12-20 15:12:13.000000000 +0000
+--- ioemu.orig/vl.h 2006-12-20 15:21:55.000000000 +0000
++++ ioemu/vl.h 2006-12-20 15:21:56.000000000 +0000
@@ -156,6 +156,26 @@
extern FILE *logfile;
Index: ioemu/target-i386-dm/cpu.h
===================================================================
---- ioemu.orig/target-i386-dm/cpu.h 2006-12-20 15:10:13.000000000 +0000
-+++ ioemu/target-i386-dm/cpu.h 2006-12-20 15:12:13.000000000 +0000
+--- ioemu.orig/target-i386-dm/cpu.h 2006-12-20 15:21:45.000000000 +0000
++++ ioemu/target-i386-dm/cpu.h 2006-12-20 15:21:56.000000000 +0000
@@ -25,7 +25,8 @@
#ifdef TARGET_X86_64
#define TARGET_LONG_BITS 64